package com.bsg.upm.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.bsg.upm.entity.AreaEntity;

/**
 * 区域接口
 * 
 * @author HCK
 *
 */
public interface AreaDao extends CrudDao<AreaEntity> {

	/**
	 * 获取指定条件下的所有区域名称
	 * 
	 * @param siteId
	 *            站点编码
	 * @param enabled
	 *            可用
	 * @return 区域名称集合
	 */
	List<AreaEntity> listName(@Param("siteId") String siteId, @Param("enabled") Boolean enabled);

	/**
	 * 获取所有的区域信息(自身基础信息非关联其他信息)
	 * 
	 * @return 区域集合
	 */
	List<AreaEntity> listWithoutAssociation();

	/**
	 * 获取指定站点和区域名称的区域个数
	 * 
	 * @param siteId
	 *            站点编码
	 * @param name
	 *            区域名称
	 * @return 区域个数
	 */
	int countBySiteIdAndName(@Param("siteId") String siteId, @Param("name") String name);

	/**
	 * 获取使用指定备份存储的区域个数
	 * 
	 * @param backupStorageId
	 *            备份存储编码
	 * @return 区域个数
	 */
	int countByBackupStorageId(@Param("backupStorageId") String backupStorageId);

	/**
	 * 更新区域可用状态
	 * 
	 * @param area
	 *            区域对象
	 * @return 更新数据条数
	 */
	int updateEnabled(AreaEntity area);
}
